//
//  main.m
//  OC01_类和对象
//
//  Created by dllo on 16/2/24.
//  Copyright © 2016年 Apon. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h" /**< 导入头文件. */
int main(int argc, const char * argv[]) {
#pragma mark - 知识点1: 类和对象,
    /**
     *@breif
     *
     *@param
     *
     *@return
     */         //多行注释
    
    //单行注释
    
    /**< content */
    /* */
    
    
    
    
    /**
     *类: 由特征(实例变量)和行为(方法)组成
     *面向对象编程三大步: 定义类, 创建对象(开辟空间过程(堆区:用指针访问)), 使用对象,
     */
#pragma mark - 1.1 类的定义,
/** 详见Person.h和Person.m类文件.*/
    
    
#pragma mark - 1.2 创建对象,
#if 0
    // 1.开辟空间.
    Person *person1 = [Person alloc];
//    [Person alloc];//指针占8个字节.8*8=64
    
    // 2.初始化.
    person1 = [person1 init];
    
    // alloc之后必须初始化,所以通常alloc和init方法连写
    Person *person2 = [[Person alloc] init];
#endif
    
#if 0
#pragma mark - 知识点2: 使用对象,
   /** 使用对象, 就是调用方法(功能). */
    //创建对象,
    Person *per1 = [[Person alloc] init];
    //使用对象(调用方法)
    [per1 info];
    [per1 sayhi];
#endif
    
#pragma mark - 知识点3: 实例变量的操作,
    Person *per1 = [[Person alloc] init];
    // 实例变量的赋值.
    per1->_name = @"zhangsan";
    per1->_age = 18;
    
    //实例变量的取值.
    NSLog(@"name:%@", per1->_name);
    
    //调用对象方法.
    [per1 info];
    
    
    
    
    return 0;
}
